﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
using namespace std;

//int main()
//{
//	cout << "11111" << endl;
//	cerr << "11111" << endl;
//	clog << "11111" << endl;
//  
//	string str;
//	while (cin >> str) //Ctrl+c是发出结束进程信号，直接暴力杀死进程。
//	//这里string对应的流提取是: while (operator>>(cin, str))，内部重载了>>
//	{
//		cout << str << endl;
//	}
//	return 0;
//}

//class Date
//{
//	friend ostream& operator << (ostream& out, const Date& d);
//	friend istream& operator >> (istream& in, Date& d);
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//		:_year(year)
//		, _month(month)
//		, _day(day)
//	{}
//	//重载bool类型，用于循环语句的判断
//	operator bool() 
//	{
//		//这里假设输入_year为0时结束
//		if (_year == 0)
//			return false;
//		else
//			return true;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
////实现Date类的流插入和流提取
//istream& operator >> (istream& in, Date& d)
//{
//	in >> d._year >> d._month >> d._day;
//	return in;
//}
//ostream& operator << (ostream& out, const Date& d)
//{
//	out << d._year << " " << d._month << " " << d._day;
//	return out;
//}
//int main()
//{
//	Date d(2024, 6, 7);
//	cout << "输出: " << d << endl;
//	while (d)
//	{
//		cin >> d;
//		cout << "输出: " << d << endl;
//	}
//	return 0;
//}

//struct ServerInfo
//{
//	char _address[32];
//	//string _address; 
//
//	int _port;
//	Date _date;
//};
//class ConfigManager
//{
//public:
//	ConfigManager(const char* filename)
//		:_filename(filename)
//	{}
//
//	// 二进制写，内存中是什么样子，就按字节一个一个写出去
//	void WriteBin(const ServerInfo& info)
//	{
//		ofstream ofs(_filename, ios_base::out | ios_base::binary);
//		ofs.write((const char*)&info, sizeof(info));
//	}
//
//	// 二进制写，硬盘文件中是什么样子，就按字节一个一个读出来
//	void ReadBin(ServerInfo& info)
//	{
//		ifstream ifs(_filename, ios_base::in | ios_base::binary);
//		ifs.read((char*)&info, sizeof(info));
//	}
//
//	void WriteText(const ServerInfo& info)
//	{
//		ofstream ofs(_filename);
//		ofs << info._address << endl;
//		ofs << info._port << endl;
//		ofs << info._date << endl;
//	}
//
//	void ReadText(ServerInfo& info)
//	{
//		ifstream ifs(_filename);
//		ifs >> info._address;
//		ifs >> info._port;
//		ifs >> info._date;
//	}
//
//private:
//	string _filename; // 配置文件
//};
